Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Loadable Kernel Module</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Loadable_Kernel_Module"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Loadable_Kernel_Module rootpage-Loadable_Kernel_Module skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span lang="en">Loadable Kernel Module</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p>
Dans un <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a>, un <b>module</b> est une partie du <a href="Noyau_de_syst%C3%A8me_d'exploitation" title="Noyau de système d'exploitation">noyau</a> qui peut être intégrée pendant son fonctionnement. Le terme <a href="Anglais" title="Anglais">anglais</a> généralement employé pour les désigner est <i><span class="lang-en" lang="en">Loadable Kernel Module</span></i>, abrégé <b>LKM</b>, ou en <a href="Fran%C3%A7ais" title="Français">français</a>&nbsp;: <span class="lang-fr" lang="fr">«&nbsp;module de noyau chargeable&nbsp;»</span>.
</p><p>Cette fonctionnalité existe dans les <a href="Noyau_Linux" title="Noyau Linux">noyaux Linux</a> et les noyaux <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a>.
</p><p>C'est une alternative aux fonctionnalités <a href="Compilateur" title="Compilateur">compilées</a> dans le noyau, qui ne peuvent être chargées qu'en relançant le système.
</p><p><br>
</p>

<div class="mw-heading mw-heading2"><h2 id="Linux">Linux</h2></div>
<p>Les modules du <a href="Noyau_Linux" title="Noyau Linux">noyau Linux</a> sont généralement placés dans <code>/lib/modules</code>. Ils utilisent l'<a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">extension</a> <code>.ko</code> depuis la version 2.6.
</p><p>La commande <code>depmod</code> génère les fichiers de <a href="D%C3%A9pendance_logicielle" class="mw-redirect" title="Dépendance logicielle">dépendances</a>. Ces fichiers permettront entre autres à la commande <code>modprobe</code> de charger automatiquement tous les modules nécessaires lors de l'intégration d'un module dans le noyau.
</p><p>Les modules peuvent être retirés du noyau à tout moment tant qu'ils ne sont pas utilisés.
</p><p>Les commandes <code>lsmod</code>, <code>insmod</code> et <code>rmmod</code> permettent d'effectuer les opérations de base sur les modules.
</p><p>Dans certaines <a href="Distribution_Linux" title="Distribution Linux">distributions Linux</a> récentes, le chargement des modules est automatique lorsque le système en a besoin ou qu'il détecte un nouveau périphérique.
</p>
<div class="mw-heading mw-heading3"><h3 id="Compatibilité_des_modules_binaires"><span id="Compatibilit.C3.A9_des_modules_binaires"></span>Compatibilité des modules binaires</h3></div>
<p>Linux ne fournit pas d'interface stable (<a href="Interface_de_programmation" title="Interface de programmation">API</a> ou <a href="Application_binary_interface" title="Application binary interface">ABI</a>) pour les modules du noyau. D'une version à l'autre du noyau il peut donc y avoir des différences structurelles ou fonctionnelles qui peuvent rompre la compatibilité avec les modules existants. Pour limiter ces inconvénients, des informations de version sont placées dans la section .modinfo des modules qui peuvent être comparées à la version du noyau cible pour empêcher le chargement de modules non compatibles.
</p>
<div class="mw-heading mw-heading3"><h3 id="Considérations_juridiques"><span id="Consid.C3.A9rations_juridiques"></span>Considérations juridiques</h3></div>
<p>La licence <a href="GNU_GPL" class="mw-redirect" title="GNU GPL">GNU GPL</a> qui régit le noyau Linux implique que tout travail dérivé soit placé sous cette même licence. Les mainteneurs du noyau considèrent que, sauf exception, les modules du noyau sont des travaux dérivés et comme tels soumis à la licence GNU GPL. <a href="Linus_Torvalds" title="Linus Torvalds">Linus Torvalds</a> a ainsi exprimé qu'il pouvait exister de rares exceptions&nbsp;: typiquement si le <a href="Pilote_informatique" title="Pilote informatique">pilote</a> d'un autre système d'exploitation était adapté pour fonctionner sous Linux, il lui semble difficile de qualifier le travail en résultant de «&nbsp;travail dérivé de Linux&nbsp;»<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>.
</p><p>Le symbole d'exportation du noyau permet de spécifier la licence des modules qui interagissent, par exemple dans le cas de <i>EXPORT_SYMBOL_GPL</i>, le module sera marqué de cette façon&nbsp;: <i>MODULE_LICENSE("GPL")</i>. Pour Linus Torvalds, cette précision a une valeur descriptive mais aussi juridique<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://kerneltrap.org/node/1735">Linux: The GPL And Binary Modules</a> <span class="noarchive">«&nbsp;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20050723031159/http://kerneltrap.org/node/1735">Copie archivée</a>&nbsp;»</span> <small>(version du <time class="nowrap" datetime="2005-07-23" data-sort-value="2005-07-23">23 juillet 2005</time> sur <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://lwn.net/Articles/154602/">On the value of EXPORT_SYMBOL_GPL</a></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Article_connexe">Article connexe</h3></div>
<ul><li><a href="Fichier_binaire" title="Fichier binaire">Fichier binaire</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Lien_externe">Lien externe</h3></div>
<ul><li><a rel="nofollow" class="external text" href="https://wiki.spiritofhack.net/index.php/LKM_linux">Tutorial sur la programmation de LKM en C</a></li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels libres</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de Linux</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2023-11-29" href="https://fr.wikipedia.org/wiki/?title=Loadable_Kernel_Module&amp;oldid=210106337">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>